// 极验、图形验证码、无需验证 方式切换
document.write("<script src='../js/gt.js'></script>");

//验证方法                  （数据,成功回调函数,祖先div）
function verifyMethodSwitch(option, successCallBack, verifyBoxId) {
    //如果为空 默认为verifyBox2 手机号下的图形验证码
    var verifyBoxId = verifyBoxId || 'verifyBox2';
    //获取数据
    var data = option;
    $.ajax({
        type: "post",
        url: "/huactrler/geetestcaptchaV1",
        dataType: "json",
        data: {
            //平台类型 web
            platform: 'web',
            //获取手机号
            mobile: data.mobile
        },
        success: function (res) {
            //图形验证码 不正确     图片验证码验证
            if (res.Status == "0" && res.DataStatus == 100) {
                //显示
                showImgValidCode(verifyBoxId);
                //图形验证码input框获得焦点
                $("#" + verifyBoxId + " input").focus();
                //跟换验证图片
                $("#" + verifyBoxId + " img").attr("src", res.Datas.ImgData);
                //显示提示信息                            祖先div
                ShowTips("请输入图形验证码", "#" + verifyBoxId);
            }
            //验证成功  极验
            if (res.Status == "0" && res.DataStatus == 200) {
                //更改锁状态
                if (!geetestLock) {
                    //开锁
                    geetestLock = true;
                    //操作者       (初始化数据,成功回调函数,原始数据,手机短信验证码祖先div)
                    geetestHandler(res.Datas.Data, successCallBack, data, ".code-box");
                }
            }
            ///无需验证
            if (res.Status == "0" && res.DataStatus == 1) {
                successCallBack(data)
            }
        }
    })
}
//图形验证码验证失败       (图形验证码input祖先div)
function showImgValidCode(verifyBoxId) {
    //div显示
    $("#" + verifyBoxId).show();
    //验证失败
    showImgValidCode1 = true;
}
function closeAllImgValidCode() {
    $(".verify-box").hide();
    showImgValidCode1 = false;
}
//操作者                (初始化数据,成功回调函数,原始数据,手机短信验证码祖先div)
function geetestHandler(initGeetestData, success1, sendSmsData, errClass) {
    //传递初始化数据   极验初始化数据
    var data = initGeetestData;
    //手机短信数据    发送短信验证码数据
    var smsData = sendSmsData;
    var geetestObj;
    //请检测data的数据结构， 保证data.gt, data.challenge, data.success有值
    initGeetest({
        // 以下配置参数来自服务端 SDK
        gt: data.gt,
        //挑战
        challenge: data.challenge,
        //是否离线
        offline: !data.success,
        //新验证码
        new_captcha: true,
        https: true,
        product: 'bind',
    }, function (captchaObj) {
        // 这里可以调用验证实例 captchaObj 的实例方法
        geetestObj = captchaObj;
        captchaObj.onReady(function () {
            captchaObj.verify();
        }).onSuccess(function () {
            // 二次验证
            geetestLock = false;
            var result = captchaObj.getValidate();
            if (!result) {
                showTips("请完成验证", errClass);
            }
            $.ajax({
                url: "/huactrler/checkgeetestcaptcha",
                type: "post",
                dataType: "json",
                data: {
                    geetest_challenge: result.geetest_challenge,
                    geetest_validate: result.geetest_validate,
                    geetest_seccode: result.geetest_seccode
                },
                success: function (resbody) {
                    if (resbody.DataStatus === 200) {
                        if (success1 != null && typeof (success1) === "function") {
                            //执行后续操作
                            success1(sendSmsData);
                        }
                    } else {
                        captchaObj.reset();
                    }
                }
            });
            return true;
        }).onClose(function () {
            //上锁
            geetestLock = false;
        }).onError(function () {
            return true;
        })
    })
}